package com.atguigu.gulimall.seckill.controller;

import com.atguigu.common.utils.R;
import com.atguigu.gulimall.seckill.service.SeckillService;
import com.atguigu.gulimall.seckill.to.SeckillSkuRedisTo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 秒杀服务
 * @author gcq
 * @Create 2021-01-08
 */
@Controller
public class SeckillController {

    @Autowired
    SeckillService seckillService;
    /**
    * @需求描述: 系统管理员 秒杀服务组 模块 查询出当前参加的秒杀服务
    * @创建人: 郭承乾
    * @创建时间: 2021/01/09 13:49
    * @修改需求:
    * @修改人:
    * @修改时间:
    * @需求思路:
    */
    @ResponseBody
    @GetMapping("/currentSekcillSkus")
    public R getCurrentSeckillSkus() {
        List<SeckillSkuRedisTo> currentSeckillSkus = seckillService.getCurrentSeckillSkus();
        return R.ok().setData(currentSeckillSkus);
    }
    /**
    * @需求描述: 系统管理员 秒杀服务组 模块 查询商品是否参加秒杀
    * @创建人: 郭承乾
    * @创建时间: 2021/01/09 15:14
    * @修改需求:
    * @修改人:
    * @修改时间:
    * @需求思路:
    */
    @ResponseBody
    @GetMapping("/sku/seckill/{skuId}")
    public R getSKuSeckillInfo(@PathVariable("skuId") Long skuId) {
        SeckillSkuRedisTo redisTo = seckillService.getSkuSeckillInfo(skuId);
        return R.ok().setData(redisTo);
    }

    /**
     * 秒杀服务请求
     * @param killId 秒杀id 由活动场次id和商品skuid拼接而成
     * @param key 随机码
     * @param num 抢购数量
     * @return
     */
    @GetMapping("/kill")
    public String kill(@RequestParam("killId") String killId,
                       @RequestParam("key") String key,
                       @RequestParam("num") Integer num, Model model) {
        String orderSn = seckillService.kill(killId,key,num);
//        System.out.println(orderSn);
        model.addAttribute("orderSn",orderSn);
        return "success";
    }
}